package com.sitech.openapi.domain.user;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.List;

@ApiModel(value = "OfferInst", description = "销售品实例")
public class OfferInst implements Serializable {

    private static final long serialVersionUID = 1L;

    // 记录销售品实例标识，主键。
    @ApiModelProperty(value = "销售品实例标识")
    private Long offerInstId;

    // 记录外部销售品实例标识
    @ApiModelProperty(value = "外部销售品实例标识")
    private String extOfferInstId;

    // 引用对象Offer
    @ApiModelProperty(value = "销售品业务编码")
    private String offerNbr;

    // 记录销售品标识归属的销售品类型，冗余存储。LOVB= OFF-0005
    @ApiModelProperty(value = "销售品类型")
    private Long offerType;

    // 记录销售品名称
    @ApiModelProperty(value = "销售品名称")
    private String offName;

    // 记录产权客户标识。
    @ApiModelProperty(value = "产权客户标识")
    private Long ownerCustId;

    // 记录外部产权客户标识
    @ApiModelProperty(value = "外部产权客户标识")
    private Long extOwnerCustId;

    // 记录销售品实例具体的生效时间，不因销售品信息变更而改变。
    @ApiModelProperty(value = "生效时间")
    private String effDate;

    // 记录销售品实例具体的失效时间，指同客户约定的协议失效时间。
    @ApiModelProperty(value = "失效时间")
    private String expDate;

    // 记录销售品协议项的标识，协议子域的外键。
    @ApiModelProperty(value = "销售品协议项标识")
    private Long offerAgreeId;

    // 记录实例创建的组织标识。
    @ApiModelProperty(value = "创建组织标识")
    private Long createOrgId;

    // 记录套餐到期是否自动续约、自动退订，也可以由10000客户确认后自动退订改自动续约。LOVB=OFF-0008
    @ApiModelProperty(value = "到期处理方式")
    private String expProcMethod;

    // 主数据编码
    @ApiModelProperty(value = "生失效方式")
    private String effType;

    // CEP-PRI-00001销售品实例生效方式。
    @ApiModelProperty(value = "本地网标识")
    private Long lanId;

    // 指定方式的需要送，其他不需要送，省内自行计算
    @ApiModelProperty(value = "区域标识")
    private Long regionId;

    // 记录本地网标识。
    @ApiModelProperty(value = "状态")
    private String statusCd;

    // 记录销售品实例所属的区域。指向公共管理区域标识
    @ApiModelProperty(value = "业务变更时间")
    private String busiModDate;

    // 记录状态。LOVB=PUB-C-0001。
    @ApiModelProperty(value = "创建时间")
    private String createDate;

    // 记录销售品信息业务变更的时间，保持档案时间的连续性，手动维护或人工信息维护不需进历史表用修改时间表达，不用修改这个时间，由客户发起的要进历史表。
    @ApiModelProperty(value = "备注")
    private String remark;

    //
    @ApiModelProperty(value = "销售品实例属性")
    private List<OfferInstAttr> offerInstAttrs;

    // 记录备注信息。
    @ApiModelProperty(value = "销售品产品实例关系")
    private List<OfferProdInstRel> offerProdInstRels;

    // 销售品实例属性
    @ApiModelProperty(value = "销售品实例营销资源实例关系")
    private List<OfferResInstRel> offerResInstRels;

    public Long getOfferInstId() {
        return offerInstId;
    }

    public void setOfferInstId(Long offerInstId) {
        this.offerInstId = offerInstId;
    }

    public String getExtOfferInstId() {
        return extOfferInstId;
    }

    public void setExtOfferInstId(String extOfferInstId) {
        this.extOfferInstId = extOfferInstId;
    }

    public String getOfferNbr() {
        return offerNbr;
    }

    public void setOfferNbr(String offerNbr) {
        this.offerNbr = offerNbr;
    }

    public Long getOfferType() {
        return offerType;
    }

    public void setOfferType(Long offerType) {
        this.offerType = offerType;
    }

    public String getOffName() {
        return offName;
    }

    public void setOffName(String offName) {
        this.offName = offName;
    }

    public Long getOwnerCustId() {
        return ownerCustId;
    }

    public void setOwnerCustId(Long ownerCustId) {
        this.ownerCustId = ownerCustId;
    }

    public Long getExtOwnerCustId() {
        return extOwnerCustId;
    }

    public void setExtOwnerCustId(Long extOwnerCustId) {
        this.extOwnerCustId = extOwnerCustId;
    }

    public String getEffDate() {
        return effDate;
    }

    public void setEffDate(String effDate) {
        this.effDate = effDate;
    }

    public String getExpDate() {
        return expDate;
    }

    public void setExpDate(String expDate) {
        this.expDate = expDate;
    }

    public Long getOfferAgreeId() {
        return offerAgreeId;
    }

    public void setOfferAgreeId(Long offerAgreeId) {
        this.offerAgreeId = offerAgreeId;
    }

    public Long getCreateOrgId() {
        return createOrgId;
    }

    public void setCreateOrgId(Long createOrgId) {
        this.createOrgId = createOrgId;
    }

    public String getExpProcMethod() {
        return expProcMethod;
    }

    public void setExpProcMethod(String expProcMethod) {
        this.expProcMethod = expProcMethod;
    }

    public String getEffType() {
        return effType;
    }

    public void setEffType(String effType) {
        this.effType = effType;
    }

    public Long getLanId() {
        return lanId;
    }

    public void setLanId(Long lanId) {
        this.lanId = lanId;
    }

    public Long getRegionId() {
        return regionId;
    }

    public void setRegionId(Long regionId) {
        this.regionId = regionId;
    }

    public String getStatusCd() {
        return statusCd;
    }

    public void setStatusCd(String statusCd) {
        this.statusCd = statusCd;
    }

    public String getBusiModDate() {
        return busiModDate;
    }

    public void setBusiModDate(String busiModDate) {
        this.busiModDate = busiModDate;
    }

    public String getCreateDate() {
        return createDate;
    }

    public void setCreateDate(String createDate) {
        this.createDate = createDate;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public List<OfferInstAttr> getOfferInstAttrs() {
        return offerInstAttrs;
    }

    public void setOfferInstAttrs(List<OfferInstAttr> offerInstAttrs) {
        this.offerInstAttrs = offerInstAttrs;
    }

    public List<OfferProdInstRel> getOfferProdInstRels() {
        return offerProdInstRels;
    }

    public void setOfferProdInstRels(List<OfferProdInstRel> offerProdInstRels) {
        this.offerProdInstRels = offerProdInstRels;
    }

    public List<OfferResInstRel> getOfferResInstRels() {
        return offerResInstRels;
    }

    public void setOfferResInstRels(List<OfferResInstRel> offerResInstRels) {
        this.offerResInstRels = offerResInstRels;
    }

    @Override
    public String toString() {
        return "OfferInst{" +
                "offerInstId=" + offerInstId +
                ", extOfferInstId='" + extOfferInstId + '\'' +
                ", offerNbr='" + offerNbr + '\'' +
                ", offerType=" + offerType +
                ", offName='" + offName + '\'' +
                ", ownerCustId=" + ownerCustId +
                ", extOwnerCustId=" + extOwnerCustId +
                ", effDate='" + effDate + '\'' +
                ", expDate='" + expDate + '\'' +
                ", offerAgreeId=" + offerAgreeId +
                ", createOrgId=" + createOrgId +
                ", expProcMethod='" + expProcMethod + '\'' +
                ", effType='" + effType + '\'' +
                ", lanId=" + lanId +
                ", regionId=" + regionId +
                ", statusCd='" + statusCd + '\'' +
                ", busiModDate='" + busiModDate + '\'' +
                ", createDate='" + createDate + '\'' +
                ", remark='" + remark + '\'' +
                ", offerInstAttrs=" + offerInstAttrs +
                ", offerProdInstRels=" + offerProdInstRels +
                ", offerResInstRels=" + offerResInstRels +
                '}';
    }
}
